{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<!--BOOK_INFORMATION-->\n",
    "<img align=\"left\" style=\"padding-right:10px;\" src=\"figures/PDSH-cover-small.png\">\n",
    "\n",
    "*This notebook contains an excerpt from the [Python Data Science Handbook](http://shop.oreilly.com/product/0636920034919.do) by Jake VanderPlas; the content is available [on GitHub](https://github.com/jakevdp/PythonDataScienceHandbook).*\n",
    "\n",
    "*The text is released under the [CC-BY-NC-ND license](https://creativecommons.org/licenses/by-nc-nd/3.0/us/legalcode), and code is released under the [MIT license](https://opensource.org/licenses/MIT). If you find this content useful, please consider supporting the work by [buying the book](http://shop.oreilly.com/product/0636920034919.do)!*"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<!--NAVIGATION-->\n",
    "< [Aggregation and Grouping](03.08-Aggregation-and-Grouping.ipynb) | [Contents](Index.ipynb) | [Vectorized String Operations](03.10-Working-With-Strings.ipynb) >\n",
    "\n",
    "<a href=\"https://colab.research.google.com/github/jakevdp/PythonDataScienceHandbook/blob/master/notebooks/03.09-Pivot-Tables.ipynb\"><img align=\"left\" src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open in Colab\" title=\"Open and Execute in Google Colaboratory\"></a>\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Pivot Tables"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We have seen how the ``GroupBy`` abstraction lets us explore relationships within a dataset.\n",
    "A *pivot table* is a similar operation that is commonly seen in spreadsheets and other programs that operate on tabular data.\n",
    "The pivot table takes simple column-wise data as input, and groups the entries into a two-dimensional table that provides a multidimensional summarization of the data.\n",
    "The difference between pivot tables and ``GroupBy`` can sometimes cause confusion; it helps me to think of pivot tables as essentially a *multidimensional* version of ``GroupBy`` aggregation.\n",
    "That is, you split-apply-combine, but both the split and the combine happen across not a one-dimensional index, but across a two-dimensional grid."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Motivating Pivot Tables\n",
    "\n",
    "For the examples in this section, we'll use the database of passengers on the *Titanic*, available through the Seaborn library (see [Visualization With Seaborn](04.14-Visualization-With-Seaborn.ipynb)):"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import seaborn as sns\n",
    "titanic = sns.load_dataset('titanic')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>survived</th>\n",
       "      <th>pclass</th>\n",
       "      <th>sex</th>\n",
       "      <th>age</th>\n",
       "      <th>sibsp</th>\n",
       "      <th>parch</th>\n",
       "      <th>fare</th>\n",
       "      <th>embarked</th>\n",
       "      <th>class</th>\n",
       "      <th>who</th>\n",
       "      <th>adult_male</th>\n",
       "      <th>deck</th>\n",
       "      <th>embark_town</th>\n",
       "      <th>alive</th>\n",
       "      <th>alone</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>male</td>\n",
       "      <td>22.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>7.2500</td>\n",
       "      <td>S</td>\n",
       "      <td>Third</td>\n",
       "      <td>man</td>\n",
       "      <td>True</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Southampton</td>\n",
       "      <td>no</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>female</td>\n",
       "      <td>38.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>71.2833</td>\n",
       "      <td>C</td>\n",
       "      <td>First</td>\n",
       "      <td>woman</td>\n",
       "      <td>False</td>\n",
       "      <td>C</td>\n",
       "      <td>Cherbourg</td>\n",
       "      <td>yes</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>female</td>\n",
       "      <td>26.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>7.9250</td>\n",
       "      <td>S</td>\n",
       "      <td>Third</td>\n",
       "      <td>woman</td>\n",
       "      <td>False</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Southampton</td>\n",
       "      <td>yes</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>female</td>\n",
       "      <td>35.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>53.1000</td>\n",
       "      <td>S</td>\n",
       "      <td>First</td>\n",
       "      <td>woman</td>\n",
       "      <td>False</td>\n",
       "      <td>C</td>\n",
       "      <td>Southampton</td>\n",
       "      <td>yes</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>male</td>\n",
       "      <td>35.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>8.0500</td>\n",
       "      <td>S</td>\n",
       "      <td>Third</td>\n",
       "      <td>man</td>\n",
       "      <td>True</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Southampton</td>\n",
       "      <td>no</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   survived  pclass     sex   age  sibsp  parch     fare embarked  class  \\\n",
       "0         0       3    male  22.0      1      0   7.2500        S  Third   \n",
       "1         1       1  female  38.0      1      0  71.2833        C  First   \n",
       "2         1       3  female  26.0      0      0   7.9250        S  Third   \n",
       "3         1       1  female  35.0      1      0  53.1000        S  First   \n",
       "4         0       3    male  35.0      0      0   8.0500        S  Third   \n",
       "\n",
       "     who  adult_male deck  embark_town alive  alone  \n",
       "0    man        True  NaN  Southampton    no  False  \n",
       "1  woman       False    C    Cherbourg   yes  False  \n",
       "2  woman       False  NaN  Southampton   yes   True  \n",
       "3  woman       False    C  Southampton   yes  False  \n",
       "4    man        True  NaN  Southampton    no   True  "
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "titanic.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This contains a wealth of information on each passenger of that ill-fated voyage, including gender, age, class, fare paid, and much more."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Pivot Tables by Hand\n",
    "\n",
    "To start learning more about this data, we might begin by grouping according to gender, survival status, or some combination thereof.\n",
    "If you have read the previous section, you might be tempted to apply a ``GroupBy`` operation–for example, let's look at survival rate by gender:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>survived</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sex</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>female</th>\n",
       "      <td>0.742038</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>male</th>\n",
       "      <td>0.188908</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        survived\n",
       "sex             \n",
       "female  0.742038\n",
       "male    0.188908"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "titanic.groupby('sex')[['survived']].mean()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This immediately gives us some insight: overall, three of every four females on board survived, while only one in five males survived!\n",
    "\n",
    "This is useful, but we might like to go one step deeper and look at survival by both sex and, say, class.\n",
    "Using the vocabulary of ``GroupBy``, we might proceed using something like this:\n",
    "we *group by* class and gender, *select* survival, *apply* a mean aggregate, *combine* the resulting groups, and then *unstack* the hierarchical index to reveal the hidden multidimensionality. In code:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "sex     class \n",
       "female  First     0.968085\n",
       "        Second    0.921053\n",
       "        Third     0.500000\n",
       "male    First     0.368852\n",
       "        Second    0.157407\n",
       "        Third     0.135447\n",
       "Name: survived, dtype: float64"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "titanic.groupby(['sex', 'class'])['survived'].mean()\n",
    "#titanic.groupby(['sex', 'class'])['survived'].aggregate('mean')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>class</th>\n",
       "      <th>First</th>\n",
       "      <th>Second</th>\n",
       "      <th>Third</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sex</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>female</th>\n",
       "      <td>0.968085</td>\n",
       "      <td>0.921053</td>\n",
       "      <td>0.500000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>male</th>\n",
       "      <td>0.368852</td>\n",
       "      <td>0.157407</td>\n",
       "      <td>0.135447</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "class      First    Second     Third\n",
       "sex                                 \n",
       "female  0.968085  0.921053  0.500000\n",
       "male    0.368852  0.157407  0.135447"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "titanic.groupby(['sex', 'class'])['survived'].aggregate('mean').unstack()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This gives us a better idea of how both gender and class affected survival, but the code is starting to look a bit garbled.\n",
    "While each step of this pipeline makes sense in light of the tools we've previously discussed, the long string of code is not particularly easy to read or use.\n",
    "This two-dimensional ``GroupBy`` is common enough that Pandas includes a convenience routine, ``pivot_table``, which succinctly handles this type of multi-dimensional aggregation."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Pivot Table Syntax\n",
    "\n",
    "Here is the equivalent to the preceding operation using the ``pivot_table`` method of ``DataFrame``s:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>class</th>\n",
       "      <th>First</th>\n",
       "      <th>Second</th>\n",
       "      <th>Third</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sex</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>female</th>\n",
       "      <td>0.968085</td>\n",
       "      <td>0.921053</td>\n",
       "      <td>0.500000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>male</th>\n",
       "      <td>0.368852</td>\n",
       "      <td>0.157407</td>\n",
       "      <td>0.135447</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "class      First    Second     Third\n",
       "sex                                 \n",
       "female  0.968085  0.921053  0.500000\n",
       "male    0.368852  0.157407  0.135447"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "titanic.pivot_table('survived', index='sex', columns='class')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This is eminently more readable than the ``groupby`` approach, and produces the same result.\n",
    "As you might expect of an early 20th-century transatlantic cruise, the survival gradient favors both women and higher classes.\n",
    "First-class women survived with near certainty (hi, Rose!), while only one in ten third-class men survived (sorry, Jack!)."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Multi-level pivot tables\n",
    "\n",
    "Just as in the ``GroupBy``, the grouping in pivot tables can be specified with multiple levels, and via a number of options.\n",
    "For example, we might be interested in looking at age as a third dimension.\n",
    "We'll bin the age using the ``pd.cut`` function:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>class</th>\n",
       "      <th>First</th>\n",
       "      <th>Second</th>\n",
       "      <th>Third</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sex</th>\n",
       "      <th>age</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">female</th>\n",
       "      <th>(0, 18]</th>\n",
       "      <td>0.909091</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.511628</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>(18, 80]</th>\n",
       "      <td>0.972973</td>\n",
       "      <td>0.900000</td>\n",
       "      <td>0.423729</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">male</th>\n",
       "      <th>(0, 18]</th>\n",
       "      <td>0.800000</td>\n",
       "      <td>0.600000</td>\n",
       "      <td>0.215686</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>(18, 80]</th>\n",
       "      <td>0.375000</td>\n",
       "      <td>0.071429</td>\n",
       "      <td>0.133663</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "class               First    Second     Third\n",
       "sex    age                                   \n",
       "female (0, 18]   0.909091  1.000000  0.511628\n",
       "       (18, 80]  0.972973  0.900000  0.423729\n",
       "male   (0, 18]   0.800000  0.600000  0.215686\n",
       "       (18, 80]  0.375000  0.071429  0.133663"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "age = pd.cut(titanic['age'], [0, 18, 80])\n",
    "titanic.pivot_table('survived', ['sex', age], 'class')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can apply the same strategy when working with the columns as well; let's add info on the fare paid using ``pd.qcut`` to automatically compute quantiles:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr:last-of-type th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>fare</th>\n",
       "      <th colspan=\"2\" halign=\"left\">(-0.001, 8.662]</th>\n",
       "      <th colspan=\"3\" halign=\"left\">(8.662, 26.0]</th>\n",
       "      <th colspan=\"3\" halign=\"left\">(26.0, 512.329]</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>class</th>\n",
       "      <th>First</th>\n",
       "      <th>Third</th>\n",
       "      <th>First</th>\n",
       "      <th>Second</th>\n",
       "      <th>Third</th>\n",
       "      <th>First</th>\n",
       "      <th>Second</th>\n",
       "      <th>Third</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sex</th>\n",
       "      <th>age</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">female</th>\n",
       "      <th>(0, 18]</th>\n",
       "      <td>NaN</td>\n",
       "      <td>0.700000</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.583333</td>\n",
       "      <td>0.909091</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.111111</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>(18, 80]</th>\n",
       "      <td>NaN</td>\n",
       "      <td>0.523810</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.877551</td>\n",
       "      <td>0.433333</td>\n",
       "      <td>0.972222</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.125000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">male</th>\n",
       "      <th>(0, 18]</th>\n",
       "      <td>NaN</td>\n",
       "      <td>0.166667</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.500000</td>\n",
       "      <td>0.500000</td>\n",
       "      <td>0.800000</td>\n",
       "      <td>0.8</td>\n",
       "      <td>0.052632</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>(18, 80]</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.127389</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.086957</td>\n",
       "      <td>0.102564</td>\n",
       "      <td>0.400000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.500000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "fare            (-0.001, 8.662]           (8.662, 26.0]                      \\\n",
       "class                     First     Third         First    Second     Third   \n",
       "sex    age                                                                    \n",
       "female (0, 18]              NaN  0.700000           NaN  1.000000  0.583333   \n",
       "       (18, 80]             NaN  0.523810           1.0  0.877551  0.433333   \n",
       "male   (0, 18]              NaN  0.166667           NaN  0.500000  0.500000   \n",
       "       (18, 80]             0.0  0.127389           0.0  0.086957  0.102564   \n",
       "\n",
       "fare            (26.0, 512.329]                   \n",
       "class                     First Second     Third  \n",
       "sex    age                                        \n",
       "female (0, 18]         0.909091    1.0  0.111111  \n",
       "       (18, 80]        0.972222    1.0  0.125000  \n",
       "male   (0, 18]         0.800000    0.8  0.052632  \n",
       "       (18, 80]        0.400000    0.0  0.500000  "
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "fare = pd.qcut(titanic['fare'], 3)\n",
    "titanic.pivot_table('survived', ['sex', age], [fare, 'class'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The result is a four-dimensional aggregation with hierarchical indices (see [Hierarchical Indexing](03.05-Hierarchical-Indexing.ipynb)), shown in a grid demonstrating the relationship between the values."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Additional pivot table options\n",
    "\n",
    "The full call signature of the ``pivot_table`` method of ``DataFrame``s is as follows:\n",
    "\n",
    "```python\n",
    "# call signature as of Pandas 0.18\n",
    "DataFrame.pivot_table(data, values=None, index=None, columns=None,\n",
    "                      aggfunc='mean', fill_value=None, margins=False,\n",
    "                      dropna=True, margins_name='All')\n",
    "```\n",
    "\n",
    "We've already seen examples of the first three arguments; here we'll take a quick look at the remaining ones.\n",
    "Two of the options, ``fill_value`` and ``dropna``, have to do with missing data and are fairly straightforward; we will not show examples of them here.\n",
    "\n",
    "The ``aggfunc`` keyword controls what type of aggregation is applied, which is a mean by default.\n",
    "As in the GroupBy, the aggregation specification can be a string representing one of several common choices (e.g., ``'sum'``, ``'mean'``, ``'count'``, ``'min'``, ``'max'``, etc.) or a function that implements an aggregation (e.g., ``np.sum()``, ``min()``, ``sum()``, etc.).\n",
    "Additionally, it can be specified as a dictionary mapping a column to any of the above desired options:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr:last-of-type th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th colspan=\"3\" halign=\"left\">fare</th>\n",
       "      <th colspan=\"3\" halign=\"left\">survived</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>class</th>\n",
       "      <th>First</th>\n",
       "      <th>Second</th>\n",
       "      <th>Third</th>\n",
       "      <th>First</th>\n",
       "      <th>Second</th>\n",
       "      <th>Third</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sex</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>female</th>\n",
       "      <td>106.125798</td>\n",
       "      <td>21.970121</td>\n",
       "      <td>16.118810</td>\n",
       "      <td>91</td>\n",
       "      <td>70</td>\n",
       "      <td>72</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>male</th>\n",
       "      <td>67.226127</td>\n",
       "      <td>19.741782</td>\n",
       "      <td>12.661633</td>\n",
       "      <td>45</td>\n",
       "      <td>17</td>\n",
       "      <td>47</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              fare                       survived             \n",
       "class        First     Second      Third    First Second Third\n",
       "sex                                                           \n",
       "female  106.125798  21.970121  16.118810       91     70    72\n",
       "male     67.226127  19.741782  12.661633       45     17    47"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "titanic.pivot_table(index='sex', columns='class',\n",
    "                    aggfunc={'survived':sum, 'fare':'mean'})"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Notice also here that we've omitted the ``values`` keyword; when specifying a mapping for ``aggfunc``, this is determined automatically."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "At times it's useful to compute totals along each grouping.\n",
    "This can be done via the ``margins`` keyword:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>class</th>\n",
       "      <th>First</th>\n",
       "      <th>Second</th>\n",
       "      <th>Third</th>\n",
       "      <th>All</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sex</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>female</th>\n",
       "      <td>0.968085</td>\n",
       "      <td>0.921053</td>\n",
       "      <td>0.500000</td>\n",
       "      <td>0.742038</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>male</th>\n",
       "      <td>0.368852</td>\n",
       "      <td>0.157407</td>\n",
       "      <td>0.135447</td>\n",
       "      <td>0.188908</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>All</th>\n",
       "      <td>0.629630</td>\n",
       "      <td>0.472826</td>\n",
       "      <td>0.242363</td>\n",
       "      <td>0.383838</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "class      First    Second     Third       All\n",
       "sex                                           \n",
       "female  0.968085  0.921053  0.500000  0.742038\n",
       "male    0.368852  0.157407  0.135447  0.188908\n",
       "All     0.629630  0.472826  0.242363  0.383838"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#当需要计算每一组的总数时，可以通过 margins 参数来设置：\n",
    "titanic.pivot_table('survived', index='sex', columns='class', margins=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here this automatically gives us information about the class-agnostic survival rate by gender, the gender-agnostic survival rate by class, and the overall survival rate of 38%.\n",
    "The margin label can be specified with the ``margins_name`` keyword, which defaults to ``\"All\"``."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example: Birthrate Data\n",
    "\n",
    "As a more interesting example, let's take a look at the freely available data on births in the United States, provided by the Centers for Disease Control (CDC).\n",
    "This data can be found at https://raw.githubusercontent.com/jakevdp/data-CDCbirths/master/births.csv\n",
    "(this dataset has been analyzed rather extensively by Andrew Gelman and his group; see, for example, [this blog post](http://andrewgelman.com/2012/06/14/cool-ass-signal-processing-using-gaussian-processes/)):"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "# shell command to download the data:\n",
    "# !curl -O https://raw.githubusercontent.com/jakevdp/data-CDCbirths/master/births.csv"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "births = pd.read_csv('data/births.csv')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Taking a look at the data, we see that it's relatively simple–it contains the number of births grouped by date and gender:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>year</th>\n",
       "      <th>month</th>\n",
       "      <th>day</th>\n",
       "      <th>gender</th>\n",
       "      <th>births</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1969</td>\n",
       "      <td>1</td>\n",
       "      <td>1.0</td>\n",
       "      <td>F</td>\n",
       "      <td>4046</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1969</td>\n",
       "      <td>1</td>\n",
       "      <td>1.0</td>\n",
       "      <td>M</td>\n",
       "      <td>4440</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1969</td>\n",
       "      <td>1</td>\n",
       "      <td>2.0</td>\n",
       "      <td>F</td>\n",
       "      <td>4454</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1969</td>\n",
       "      <td>1</td>\n",
       "      <td>2.0</td>\n",
       "      <td>M</td>\n",
       "      <td>4548</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1969</td>\n",
       "      <td>1</td>\n",
       "      <td>3.0</td>\n",
       "      <td>F</td>\n",
       "      <td>4548</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   year  month  day gender  births\n",
       "0  1969      1  1.0      F    4046\n",
       "1  1969      1  1.0      M    4440\n",
       "2  1969      1  2.0      F    4454\n",
       "3  1969      1  2.0      M    4548\n",
       "4  1969      1  3.0      F    4548"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "births.head()\n",
    "#births.count()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can start to understand this data a bit more by using a pivot table.\n",
    "Let's add a decade column, and take a look at male and female births as a function of decade:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>gender</th>\n",
       "      <th>F</th>\n",
       "      <th>M</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>decade</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1960</th>\n",
       "      <td>1753634</td>\n",
       "      <td>1846572</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1970</th>\n",
       "      <td>16263075</td>\n",
       "      <td>17121550</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1980</th>\n",
       "      <td>18310351</td>\n",
       "      <td>19243452</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1990</th>\n",
       "      <td>19479454</td>\n",
       "      <td>20420553</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2000</th>\n",
       "      <td>18229309</td>\n",
       "      <td>19106428</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "gender         F         M\n",
       "decade                    \n",
       "1960     1753634   1846572\n",
       "1970    16263075  17121550\n",
       "1980    18310351  19243452\n",
       "1990    19479454  20420553\n",
       "2000    18229309  19106428"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "births['decade'] = 10 * (births['year'] // 10)\n",
    "births.pivot_table('births', index='decade', columns='gender', aggfunc='sum')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We immediately see that male births outnumber female births in every decade.\n",
    "To see this trend a bit more clearly, we can use the built-in plotting tools in Pandas to visualize the total number of births by year (see [Introduction to Matplotlib](04.00-Introduction-To-Matplotlib.ipynb) for a discussion of plotting with Matplotlib):"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "import matplotlib.pyplot as plt\n",
    "sns.set()  # use Seaborn styles\n",
    "births.pivot_table('births', index='year', columns='gender', aggfunc='sum').plot()\n",
    "plt.ylabel('total births per year');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "year      14610\n",
       "month     14610\n",
       "day       14610\n",
       "gender    14610\n",
       "births    14610\n",
       "decade    14610\n",
       "dtype: int64"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "births.count()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "With a simple pivot table and ``plot()`` method, we can immediately see the annual trend in births by gender. By eye, it appears that over the past 50 years male births have outnumbered female births by around 5%."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Further data exploration\n",
    "\n",
    "Though this doesn't necessarily relate to the pivot table, there are a few more interesting features we can pull out of this dataset using the Pandas tools covered up to this point.\n",
    "We must start by cleaning the data a bit, removing outliers caused by mistyped dates (e.g., June 31st) or missing values (e.g., June 99th).\n",
    "One easy way to remove these all at once is to cut outliers; we'll do this via a robust sigma-clipping operation:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "quartiles = np.percentile(births['births'], [25, 50, 75])\n",
    "mu = quartiles[1]\n",
    "sig = 0.74 * (quartiles[2] - quartiles[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "year      14610\n",
       "month     14610\n",
       "day       14610\n",
       "gender    14610\n",
       "births    14610\n",
       "decade    14610\n",
       "dtype: int64"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "births.head()\n",
    "births.count()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This final line is a robust estimate of the sample mean, where the 0.74 comes from the interquartile range of a Gaussian distribution (You can learn more about sigma-clipping operations in a book I coauthored with Željko Ivezić, Andrew J. Connolly, and Alexander Gray: [\"Statistics, Data Mining, and Machine Learning in Astronomy\"](http://press.princeton.edu/titles/10159.html) (Princeton University Press, 2014)).\n",
    "\n",
    "With this we can use the ``query()`` method (discussed further in [High-Performance Pandas: ``eval()`` and ``query()``](03.12-Performance-Eval-and-Query.ipynb)) to filter-out rows with births outside these values:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "year      14610\n",
       "month     14610\n",
       "day       14610\n",
       "gender    14610\n",
       "births    14610\n",
       "decade    14610\n",
       "dtype: int64"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "births = births.query('(births > @mu - 5 * @sig) & (births < @mu + 5 * @sig)')\n",
    "births.count()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "year      10959\n",
       "month     10959\n",
       "day       10959\n",
       "gender    10959\n",
       "births    10959\n",
       "decade    10959\n",
       "dtype: int64"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "births =births.loc[(births.births > mu - 5* sig) & (births.births < mu + 5 * sig)]\n",
    "births.count()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Next we set the ``day`` column to integers; previously it had been a string because some columns in the dataset contained the value ``'null'``:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "# set 'day' column to integer; it originally was a string due to nulls\n",
    "births['day'] = births['day'].astype(int)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Finally, we can combine the day, month, and year to create a Date index (see [Working with Time Series](03.11-Working-with-Time-Series.ipynb)).\n",
    "This allows us to quickly compute the weekday corresponding to each row:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>year</th>\n",
       "      <th>month</th>\n",
       "      <th>day</th>\n",
       "      <th>gender</th>\n",
       "      <th>births</th>\n",
       "      <th>decade</th>\n",
       "      <th>dayofweek</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1969-01-01</th>\n",
       "      <td>1969</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>M</td>\n",
       "      <td>4440</td>\n",
       "      <td>1960</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1969-01-02</th>\n",
       "      <td>1969</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>F</td>\n",
       "      <td>4454</td>\n",
       "      <td>1960</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1969-01-02</th>\n",
       "      <td>1969</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>M</td>\n",
       "      <td>4548</td>\n",
       "      <td>1960</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1969-01-03</th>\n",
       "      <td>1969</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>F</td>\n",
       "      <td>4548</td>\n",
       "      <td>1960</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1969-01-03</th>\n",
       "      <td>1969</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>M</td>\n",
       "      <td>4994</td>\n",
       "      <td>1960</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            year  month  day gender  births  decade  dayofweek\n",
       "1969-01-01  1969      1    1      M    4440    1960          2\n",
       "1969-01-02  1969      1    2      F    4454    1960          3\n",
       "1969-01-02  1969      1    2      M    4548    1960          3\n",
       "1969-01-03  1969      1    3      F    4548    1960          4\n",
       "1969-01-03  1969      1    3      M    4994    1960          4"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# create a datetime index from the year, month, day\n",
    "births.index = pd.to_datetime(10000 * births.year +\n",
    "                              100 * births.month +\n",
    "                              births.day, format='%Y%m%d')\n",
    "\n",
    "births['dayofweek'] = births.index.dayofweek\n",
    "births.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Using this we can plot births by weekday for several decades:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import matplotlib as mpl\n",
    "births.pivot_table('births', index='dayofweek',columns='decade', aggfunc='mean')\n",
    "births.pivot_table('births', index='dayofweek',\n",
    "                    columns='decade', aggfunc='mean').plot()\n",
    "plt.gca().set_xticklabels(['Mon', 'Tues', 'Wed', 'Thurs', 'Fri', 'Sat', 'Sun'])\n",
    "plt.ylabel('mean births by day');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Apparently births are slightly less common on weekends than on weekdays! Note that the 1990s and 2000s are missing because the CDC data contains only the month of birth starting in 1989.\n",
    "\n",
    "Another intersting view is to plot the mean number of births by the day of the *year*.\n",
    "Let's first group the data by month and day separately:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th>births</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"5\" valign=\"top\">1</th>\n",
       "      <th>1</th>\n",
       "      <td>4294.466667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>4522.318182</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4599.264706</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>4720.030303</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>4661.333333</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          births\n",
       "1 1  4294.466667\n",
       "  2  4522.318182\n",
       "  3  4599.264706\n",
       "  4  4720.030303\n",
       "  5  4661.333333"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "births_by_date = births.pivot_table('births', \n",
    "                                    [births.index.month, births.index.day])\n",
    "births_by_date.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The result is a multi-index over months and days.\n",
    "To make this easily plottable, let's turn these months and days into a date by associating them with a dummy year variable (making sure to choose a leap year so February 29th is correctly handled!)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>births</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2012-01-01</th>\n",
       "      <td>4009.225</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-01-02</th>\n",
       "      <td>4247.400</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-01-03</th>\n",
       "      <td>4500.900</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-01-04</th>\n",
       "      <td>4571.350</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-01-05</th>\n",
       "      <td>4603.625</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              births\n",
       "2012-01-01  4009.225\n",
       "2012-01-02  4247.400\n",
       "2012-01-03  4500.900\n",
       "2012-01-04  4571.350\n",
       "2012-01-05  4603.625"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "births_by_date.index = [pd.datetime(2012, month, day)\n",
    "                        for (month, day) in births_by_date.index]\n",
    "births_by_date.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Focusing on the month and day only, we now have a time series reflecting the average number of births by date of the year.\n",
    "From this, we can use the ``plot`` method to plot the data. It reveals some interesting trends:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot the results\n",
    "fig, ax = plt.subplots(figsize=(12, 4))\n",
    "births_by_date.plot(ax=ax);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "In particular, the striking feature of this graph is the dip in birthrate on US holidays (e.g., Independence Day, Labor Day, Thanksgiving, Christmas, New Year's Day) although this likely reflects trends in scheduled/induced births rather than some deep psychosomatic effect on natural births.\n",
    "For more discussion on this trend, see the analysis and links in [Andrew Gelman's blog post](http://andrewgelman.com/2012/06/14/cool-ass-signal-processing-using-gaussian-processes/) on the subject.\n",
    "We'll return to this figure in [Example:-Effect-of-Holidays-on-US-Births](04.09-Text-and-Annotation.ipynb#Example:-Effect-of-Holidays-on-US-Births), where we will use Matplotlib's tools to annotate this plot.\n",
    "\n",
    "Looking at this short example, you can see that many of the Python and Pandas tools we've seen to this point can be combined and used to gain insight from a variety of datasets.\n",
    "We will see some more sophisticated applications of these data manipulations in future sections!"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<!--NAVIGATION-->\n",
    "< [Aggregation and Grouping](03.08-Aggregation-and-Grouping.ipynb) | [Contents](Index.ipynb) | [Vectorized String Operations](03.10-Working-With-Strings.ipynb) >\n",
    "\n",
    "<a href=\"https://colab.research.google.com/github/jakevdp/PythonDataScienceHandbook/blob/master/notebooks/03.09-Pivot-Tables.ipynb\"><img align=\"left\" src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open in Colab\" title=\"Open and Execute in Google Colaboratory\"></a>\n"
   ]
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
